Computer systems are used to perform many different types of operations. A computer system relies on at least one processor, as described in further detail below. Each processor has an associated instruction set, i.e., a set of instructions that the processor is able to understand and execute natively. A given instruction set may include instructions for data handling, memory operations, arithmetic and logic operations, and control flow operations (e.g., branching, conditional logic, and calling other code). An instruction set may also include instructions for communicating with a coprocessor. A coprocessor is another processor, which may have a different instruction set, that supplies functionality in addition to the functionality of a primary processor. If a processor in a computer system fails, the entire computer system may be rendered inoperable. If the computer system has multiple processors and/or coprocessors, functionality supplied by the failed processor may no longer be available. Thus, even if the computer system as a whole remains operable, the failure of the processor may effectively render the computer system inoperable for its intended purpose.
Some systems with mechanical components use servomechanisms. A servomechanism (or “servo” for short) is a device or system that receives feedback and adjusts the operation of one or more physical components based on the feedback received. For example, based on feedback received by a servomechanism, the velocity, position, direction, or other operational property of a component may be adjusted. The adjustments are made automatically (i.e., through operation of the servomechanism itself), not manually by a human operator. For example, a human applying pressure to a brake pedal, to decrease the velocity of an automobile, is not a servomechanism. However, the brake pedal may be connected to an antilock braking system that uses a servomechanism to receive feedback (e.g., rotational velocity of the braking tires) and adjusts operation of the braking system accordingly (e.g., by releasing brake pressure to prevent the vehicle from skidding, if the tires stop rotating suddenly).
Many different types of feedback may be used in a servomechanism. For example, for position-based servomechanisms, the physical location of a component may be monitored and compared with an expected location. If there is a difference between the actual location and the expected location, a component may be slowed down or accelerated to compensate for the difference. Similarly, a mechanical governor, also known as a speed limiter, may be used to compare the actual speed of a component with an expected speed and adjust the actual speed accordingly. Servomechanisms also may be used in robotics to control the velocity, position, direction, or other operational property of a robotic component. Those skilled in the art will appreciate that many different types of servomechanisms exist that rely on many different types of feedback.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.